package com.hdl.service;
/**
    *   用户表业务逻辑接口
 * @author Administrator
 *
 */

import java.util.List;

import com.hdl.dto.UserSearch;
import com.hdl.entity.HdlUser;
import com.hdl.vo.HdlUserVO;
import com.hdl.vo.PageVO;

public interface UserService {
	
	/**
	 *  登陆验证
	 * @param loginUser 需要验证的用户对象
	 * @return 具有所有用户信息的用户对象
	 */
	HdlUser login(HdlUser loginUser);

	/**
	 *     用户注册
	 * @param user 需要注册的用户对象
	 */
	void register(HdlUser user);

	/**
	 * 激活用户
	 * @param code 传入相对应的激活码
	 */
	int active(String code);


	/**
	 * update 修改用户信息
	 * @param user
	 */
	void update(HdlUser user);

	/**
	 * selectById 通过用户id获取用户记录
	 * @param userId
	 * @return
	 */
	HdlUser selectById(String userId);

	
	/**
	 * selectUserById 通过id查询一条用户记录
	 * @param userId 用户id
	 * @return
	 */
	HdlUser selectUserById(String userId);

	/**
	 * 修改密码
	 * @param id
	 * @param psd
	 */
    void UpdatePsd(String id,String psd);
    


	
	/**
	 * findPsdByEmail 通过用户的邮箱找回密码
	 * @param email
	 * @return
	 */
	HdlUser findPsdByEmail(String email);
	/**
	 *修改
	 * @param user
	 * @return
	 */
	  int updates(HdlUser user);
		/**
		 * 
		 * @param search
		 * @return
		 */
		PageVO<HdlUserVO> page(UserSearch search);
		/**
		 * 通过用户id进行查找
		 * @param hdlUserId 用户的id
		 * @return
		 */
		
		HdlUser get(String hdlUserId);
		/**
		 * 通过用户的id删除用户
		 * @param hdlUserId  用户的id
		 * @return
		 */
		int delete(String hdlUserId);
		/**
		 * 
		 * @param cureen 当前页码
		 * @param len 返回的最大数量
		 * @return
		 */
		
		List<HdlUser> list(int cureen,int roMax);
		/**
		 * 返回最新的用户
		 * len 返回的用户最大数量
		 */
		List<HdlUser> list(int len);


	/**
	 * checkName 校验用户名是否被注册过了
	 * @param userName 需要校验的用户名
	 * @return
	 */
	boolean checkName(String userName);

}
